'''解析Html文件'''

from utils.commonUtil import get_bs4_obj

url="http://www.pythonscraping.com/pages/warandpeace.html"
bs4 = get_bs4_obj(url)
print(bs4.h1)

# 对于bs4的函数参数其实都是支持正则表达式的 那些参数可以传字符串也可以传正则

#筛选函数 
nameList = bs4.findAll('span',{'class':'green'}) #查找所有类属性为green的span标签
print('1=',nameList[0])
print('2=',nameList[0].get_text())
print('3=',nameList[0].get_text())

#访问获取树结构

url = "http://www.pythonscraping.com/pages/page3.html"

bs4 = get_bs4_obj(url)

#获取子标签和父标签
children = list(bs4.find("table",{"id":"giftList"}).children)
print('children',len(children)) #这个是子标签 是指父标签的下一级标签 
print('descendants',len(list(bs4.find("table",{"id":"giftList"}).descendants))) #这个是后代标签(可以是下N级标签) 所有的子标签都是后代标签

#获取兄弟标签 

trs = bs4.find('table',{"id":"giftList"}).tr #首先获取到表格的第一行数据
rows = trs.next_siblings # 一个生成器 获取当前行后面的所有兄弟标签（前面的兄弟标签并不会获取到） 但是不会包括自己
print("trs=",type(trs),type(rows),len(list(rows)))

print('previous_siblings',trs.previous_siblings,len(list(trs.previous_siblings))) # previous_siblings 返回前一个兄弟标签 注意 只返回一个

tag = children[0]
#print("tag.attrs=",tag.attrs) #获取标签的所有属性 

'''
for  k,v in tag.attrs:
    print("k,v=",k,v)
'''

print('=====',children[1])
